As computer systems get faster and more powerful they tend to consume more electricity. This makes operation of these computer systems more expensive. In addition, the increase in energy consumption of these computers tends to result in an increase in heat generated by the computers. If not properly dissipated, this heat can impede operation or even destroy the computer. Therefore, energy consumption and heat dissipation is a concern in the design of most computer systems.
Mobile computer systems represent a particular concern to system designers because mobile computer systems are typically powered by a battery, significantly limiting the amount of electrical energy available to the computer. In addition, because mobile computer systems must remain lightweight to be attractive to the consumer, the range of heat dissipation devices available to the system designer for cooling the computer is severely limited by the weight constraints. Mobile computers include, for example, laptop, notebook, sub-notebook, handheld, and other portable computers and personal data assistants.
A computer system contains one or more processors along with other electronic devices that communicate with the processor. A processor is typically considered to be the "brain" of the computer system, and generally consumes the most amount of energy. Because the processor typically consumes the most energy of all the devices in a system, most energy consumption reduction efforts focus on the processor. One method of reducing energy consumption is to place the processor into a low power state during which time one or more of the many functions performed by the processor are essentially disabled. Each function performed by the processor consumes some portion of the total energy consumed by the whole, so by disabling one or more functions of the processor, the overall energy consumption of the processor is reduced. A low power state is also referred to as sleep, deep sleep, throttle, and power-down.
Before disabling any functions of the processor, however, it is first determined whether or not the function being disabled is needed by any of the other electronic devices of the computer system. If the function is needed, then that function cannot be disabled. For example, one function performed by the processor is making sure that the information stored in the processor's local memory, or cache, is consistent with the information stored in the main memory of the computer system. Ensuring consistency between data in the cache and data in other memory locations is known as maintaining cache coherency. Some low power states are non-coherent low power states in that they don't support cache coherency. If one attempted to place the processor into a low power state that doesn't support cache coherency, the system would need to first check to ensure that none of the other electronic devices are communicating with main memory at the time.
If any of the devices are communicating with main memory when the processor attempts to transition to a non-coherent low power state, there exists the danger that the device will change data stored in main memory, thereby making the data inconsistent with copies of the data stored in the processor's cache. To eliminate this danger, the transition to a low power state is prevented if it is determined that an electronic device is in communication with main memory. Electronic devices that can initiate communication with main memory are called bus masters because they are capable of mastering, or gaining ownership of, the bus or buses necessary to communicate with slave or target devices such as memory.
To determine whether or not any bus masters are communicating with main memory, the processor must poll, or read information from, the masters to determine the status of the masters. If a master is communicating with main memory, or other memory location in the computer system, the master, or other control device, notifies the processor of this activity in response to being polled. Unfortunately, as more masters are added to the computer system, the processor must take the time to poll more devices before determining whether or not it is safe to transition to a low power state that fails to support cache coherency. This delays the transition to the low power state and increases the amount of communication between devices in the computer system. As a result, power consumption increases, as does the burden on software to coordinate all of this polling activity.